start_info->mod_start = vinitrd_start;
start_info->mod_len = initrd_len;
}
- strncpy((char *)start_info->cmd_line, cmdline, MAX_GUEST_CMDLINE);
- start_info->cmd_line[MAX_GUEST_CMDLINE-1] = '\0';
+ if (cmdline != NULL) {
+ strncpy((char *)start_info->cmd_line, cmdline, MAX_GUEST_CMDLINE);
+ start_info->cmd_line[MAX_GUEST_CMDLINE-1] = '\0';
+ } else
+ start_info->cmd_line[0] = '\0';
munmap(start_info, PAGE_SIZE);
/* shared_info page starts its life empty. */
goto error_out;
}
- if ( (image = xc_read_kernel_image(image_name, &image_size)) == NULL )
+ if ( (image_name == NULL) ||
+ ((image = xc_read_kernel_image(image_name, &image_size)) == NULL) )
goto error_out;
if ( (ramdisk_name != NULL) && (strlen(ramdisk_name) != 0) )